package com.qinhailin.common.model;

import com.jfinal.plugin.activerecord.Model;

/**
 * <p>基类,用于数据持久化</p>
 * <p>框架使用的是jfinal</p>
 * <p>最后审核:2019-10-17</p>
 * <p>最后审核:2019-11-18</p>
 * @author harrydeep@wardyan.top
 */
public abstract class BaseModel<T extends BaseModel<T>> extends Model<T> {

	/** 返回表名 **/
	public abstract String tableName();
	
	/** 返回主键 **/
	public abstract String primaryKey();
	
	
	/**
	 * <p>决定新保存对象时是否需要生成主键</p>
	 * @return 
	 * 			<p>0:不需要生成主键(或者主键交给数据库决定)</p>
	 * 			<p>
	 * 				1:客户端控制自增<br>
	 * 				2:调用存储过程获取
	 * 			</p>
	 * 			
	 *	<p>因此,最终使用的只有:0, 1, 2<p>
	 */
	public Integer primaryKeyType() {
		return 2;
	}
	
	
	/**
	 * 不使用
	 * 2019-10-17 00:16:26 以后停止使用
	 * @return
	 */
	//public abstract T getDao();
	
}
